package ArrayList;

import java.util.Arrays;

public class MyArrayList implements IList {

    public static int DEFAULT_CAPACITY=5;
    int[] elem=new int[DEFAULT_CAPACITY];
    public int usedSize=elem.length;

    @Override
    public void display() {

        for (int i=0;i<usedSize;i++){

            System.out.print(elem[i]+" ");
        }
    }
    public void add(int data) {
        //1.判断数组是否满员！

        if(isFull()){
            elem= Arrays.copyOf(elem,2*elem.length);
        }

    }
    @Override
    public boolean isFull() {
        return usedSize==elem.length;
    }

    @Override
    public void add(int pos ,int data) {
        //1.pos位置的判断！

        checkPosOfAdd(pos);

        if(isFull()){
            elem= Arrays.copyOf(elem,2*elem.length);
        }
        for(int i=usedSize-1;i>=pos;i--){//插入位置
            elem[i+1]=elem[i];
        }
        elem[pos]=data;
        usedSize++;

    }
    private void checkPosOfAdd(int pos){

        if(pos<0||pos>usedSize){

            throw new PosException("不合法异常！pos位置为："+pos);
        }
    }


/*
* 查找当前元素是否存在
* */
    @Override
    public boolean contains(int toFind) {

       for(int i=usedSize-1;i>-1;i--){
           if(elem[i]==toFind){
               return true;
           }

       }
        return false;
    }
/*
*查找当前元素下标
* */
    @Override
    public int indexOf(int toFind) {
        for(int i=0;i<usedSize;i++){

            if(elem[i]==toFind){

                return i;
            }
        }
        return -1;
    }

    @Override
    public int get(int pos) {
        return 0;
    }

    @Override
    public void set(int pos, int value) {

    }

    @Override
    public void remove(int toRemove) {

    }

    @Override
    public int size() {
        return 0;
    }

    @Override
    public void clear() {

    }


}
